# -*- coding: utf-8 -*-

#import sys
import wx
import wx.calendar
import calendario
#import conexion


def ShowMessage1(texto):
    dial = wx.MessageDialog(None, texto, 'Info', wx.OK)
    dial.ShowModal()


class Page1(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour((150, 150, 150))

        #self.db = conexion.ConexionDB()

#Mostrar un texto estatico
        wx.StaticText(self, label="Dar de alta Cliente", pos=(70, 25))

#Cargar la configuracion de los menues
        self.ln = wx.StaticLine(self, -1, pos=(0, 50), style=wx.LI_VERTICAL)
        self.ln.SetSize((800, 3))

#cargar una caja para identificar si un proyecto es interno o externo
        self.sb = wx.StaticBox(self, label="Tipo de Proyecto", pos=(50, 400))
        self.sb.SetSize((700, 50))

#Crear los checkbox
        self.cb1 = wx.CheckBox(self, 1, label='Externo', pos=(100, 420))
        self.cb2 = wx.CheckBox(self, 2, label='Interno', pos=(300, 420))
        self.cb1.SetValue(False)
        self.cb2.SetValue(False)

#Cargar texto estaticos
        self.st0 = wx.StaticText(self, label="ID Cliente", pos=(70, 100))
        self.st1 = wx.StaticText(self, label="Nombre cliente", pos=(70, 150))
        self.st2 = wx.StaticText(self, label="Direccion", pos=(70, 200))
        self.st2 = wx.StaticText(self, label="Telefono", pos=(70, 250))
        self.st3 = wx.StaticText(self, label="Fecha de Alta", pos=(70, 300))
        wx.StaticText(self, label="(dd/mm/aaaa)", pos=(70, 320))

#Cargar las cajas de texto para que el usuario cargue los datos
        self.tx1 = wx.TextCtrl(self, size=(150, 25), pos=(200, 100))
        self.tx2 = wx.TextCtrl(self, size=(150, 25), pos=(200, 150))
        self.tx3 = wx.TextCtrl(self, size=(150, 25), pos=(200, 200))
        self.tx4 = wx.TextCtrl(self, size=(150, 25), pos=(200, 250))
        self.tx5 = wx.TextCtrl(self, size=(150, 25), pos=(200, 300))

#Cargar el boton!
        self.b1 = wx.Button(self, label='Cargar', size=(100, 30), pos=(400, 330))
        self.b1.Bind(wx.EVT_BUTTON, self.onClick)

        self.b2 = wx.Button(self, label='...', size=(30, 15), pos=(360, 310))
        self.b2.Bind(wx.EVT_BUTTON, self.onClick2)


    def onClick(self, event):

        #Comprobar que todas las cajas de texto hayan sido rellenadas con algun valor
        #if ((self.tx2.GetValue() != '') and (self.tx3.GetValue()!='')) and ((self.tx4.GetValue() != '') and (self.tx5.GetValue() != '') and (self.tx6.GetValue() != '')):
            #if self.cb1.GetValue():

                ##Definir y ejecutar la consulta
                #query = '''INSERT INTO PROYECTO (id_proyecto,NOMBRE, RESPONSABLE, FECHA_INICIO,
                #TIPO, ID_EMPRESA) VALUES (%s,%s, %s, %s, %s, %s)'''
                #values = (self.tx1.GetValue(),self.tx2.GetValue(), self.tx3.GetValue(), self.tx4.GetValue(), "Externo",
                #int(self.tx5.GetValue()))

                #self.db.ejecutar(query, values)
                ##self.db.commit()

                ##int(self.tx6.GetValue())
                #query2=('''INSERT INTO POSEE (fecha_inicio,fecha_fin,id_proyecto,id_estado) VALUES (%s,%s,%s,%s)''')
                #values2=(str(self.tx4.GetValue()),0,self.tx1.GetValue(),self.tx6.GetValue())

                #self.db.ejecutar(query2, values2)
                ##self.db.commit()

            #if self.cb2.GetValue():
                #query = '''INSERT INTO PROYECTO (id_proyecto,NOMBRE, RESPONSABLE, FECHA_INICIO,
                #TIPO, ID_EMPRESA) VALUES (%s,%s, %s, %s, %s, %s)'''
                #values = (self.tx1.GetValue(),self.tx2.GetValue(), self.tx3.GetValue(), self.tx4.GetValue(),
                #"Interno", int(self.tx5.GetValue()))
                #self.db.ejecutar(query, values)
                #query2=('''INSERT INTO POSEE (fecha_inicio,fecha_fin,id_proyecto,id_estado) VALUES (%s,%s,%s,%s)''')
                #values2=(self.tx4.GetValue(),0,self.tx1.GetValue(),self.tx6.GetValue())

                #self.db.ejecutar(query2, values2)
                ##self.db.commit()

##Mostrar un mensaje tipo mensaje de error.
            #texto = 'Entrada satisfactoria'
            #ShowMessage1(texto)

        #else:
            #texto = 'Todos los campos son requeridos'
            #ShowMessage1(texto)
        pass

#Limpiar las cajas de texto
        self.tx1.Clear()
        self.tx2.Clear()
        self.tx3.Clear()
        self.tx4.Clear()
        self.tx5.Clear()

    def onClick2(self, event):
        calObj = calendario.Calendar(None, wx.ID_ANY, 'test cal')
        #if you clicked ok, continue...
        #if calObj.ShowModal() == wx.ID_OK:
            ## Set the TextCtrl by calling the global variable 'calObj.date'
            #self.tx5.SetValue(calObj.date)
            #calObj.Destroy()
        calObj.EndModal(wx.ID_OK)
        #self.tx5.SetValue(calObj.date)


class Welcome(wx.Panel):

    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour((150, 150, 150))

        #self.icon = wx.StaticBitmap(self, bitmap=wx.Bitmap('PAMPA.JPG'), pos=(70, 70))


class MainFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title="Trabajo Base de datos",
        size=(800, 600), style=wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
        self.SetBackgroundColour(wx.BLACK)

        # crea el panel y las notas
        p = wx.Panel(self)
        nb = wx.Notebook(p)

        # crea las pestañas
        page1 = Welcome(nb)
        page2 = Page1(nb)
        #page3 = Page2(nb)
        #page4 = Page3(nb)
        #page5 = Page4(nb)
        #page6 = Page5(nb)
        #page7 = Page6(nb)
        #page8 = Page7(nb)
        #page9 = Page8(nb)
        #page10 = Page9(nb)
        #page11 = Page10(nb)
        #page12 = Page11(nb)
        #page13 = Page12(nb)
        #page14 = Page13(nb)
        #pageAbout = PageFour(nb)

        # añade las pestañas
        #nb.AddPage(page1, "Bienvenido")

        nb.AddPage(page2, "Pagina 1")
        #nb.AddPage(page3, "Pagina 2")
        #nb.AddPage(page4, "Pagina 3")
        #nb.AddPage(page5, "Pagina 4")
        #nb.AddPage(page6, "Pagina 5")
        #nb.AddPage(page7, "Pagina 6")
        #nb.AddPage(page8, "Pagina 7")
        #nb.AddPage(page9, "Pagina 8")
        #nb.AddPage(page10, "Pagina 9")
        #nb.AddPage(page11, "Pagina 10")
        #nb.AddPage(page12, "Pagina 11")
        #nb.AddPage(page13, "Pagina 12")
        #nb.AddPage(page14, "Pagina 13")
        #nb.AddPage(pageAbout, 'About')

        # se carga todo en el sizer
        sizer = wx.BoxSizer()
        sizer.Add(nb, 1, wx.EXPAND)
        p.SetSizer(sizer)

        #Realizamos una prueba con la base de datos para comprobar que se puede conectar e informarlo al usuario.
        #base = conexion.ConexionDB()
        #conectado = base.probarConexion()

        #if conectado == True:
            #texto = "Se ha conectado exitosamente con la BD!."
        #else:
            #texto = "No se pudo conectar con la base de datos     :(\nRevise la configuracion de la conexion."

        #wx.MessageBox(texto, "Datos", wx.OK)


def main():

    app = wx.App()

    MainFrame().Show()
    app.MainLoop()

main()